package com.cu.arithmetic

import com.cu.model.Person
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

/**
  * @author jintian
  * @date 2018/11/27 16:19
  */
object FirstArithmetic {
  /**
    * 获取文件的rdd
    *
    * @param fileName 文件路径名
    */
  def getFileRdd(fileName: String): RDD[String] = {
    // 获取spark上下文
    var sc = new SparkContext(new SparkConf().setAppName("fileSc"));
    return sc.textFile(fileName);
  }

  def main(args: Array[String]): Unit = {
    var rdd = getFileRdd(args(0));
    // 将内容转换成一个个对象，然后分析对象内容
    simpleAnalyze(rdd);
  }

  def simpleAnalyze(fileRdd: RDD[String]): Unit = {
    // TODO 字符串数组，要根据数组内容处理
    fileRdd.map(_.trim.toLowerCase.split(",")).foreachPartition(stringIterator => {
      var person = new Person("", -1, "")
      var i = 0
      while (stringIterator.hasNext) {
        i match {
          case 0 => person.setName(stringIterator.next().toString)
          case 1 => person.setAge(Int.unbox(stringIterator.next().toString))
          case 2 => person.setSex(stringIterator.next().toString)
        }
        // 获取字符串所在位置
        i += 1
      }
    })
  }
}
